Skip to content

fix(updates): gate already-running installs and date Settings checks - #936

Merged
Mjones13 merged 7 commits into
mainfrom
work/settings-install-evidence-927-6b0f3bc6
Nov 12, 2026
Merged

Mjones13 merged 7 commits into
mainfrom
work/settings-install-evidence-927-6b0f3bc6

Conversation

@Mjones13

@Mjones13 Mjones13 commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Settings could offer Install for a staged build the host already runs, and showed undated or retained failed checks. This change aligns the visible web/mobile gates with shared dispatch-time refusal and shows check outcomes using their actual recorded timestamps. Protected and unknown operations retain their existing messages and admission gates.

The host's already-running flag supports commit or tree equivalence; older hosts use the existing conservative same-repository full-commit comparison. No client tree inference, protocol change or server guard is introduced. Failed-check diagnostics remain ahead of the informational already-running note. A later successful check clears a retained generic failure.

This is a dependent successor to #906. Its exact source head f9af8681f493424d76c713f6f6f4f9309390dbd4 was integrated into canonical main by normal merge commit 83cb4681dfc6d3c6018d4fc690ad0cb4fa535487. This PR is now based on main at 48fa5f83c1601f9f2144882819520c205006acef; the composed candidate preserves the accepted 12-file task delta. The feature-branch relationship is not a claim of native GitHub stack membership. Original #906 source and comparison worktrees are preserved. Refs #927 and #872; this does not complete the picker/recovery scope in #879.

Validation for composed candidate 2445afdba3abe13ae8b3c7d047b81931559d6962 (tree 7a7bed1c1f4f6d61f5176102b264a951a8b033b3; parents 2af2a173a0998c1505ec16ebf24d5fdbe33ee490 and 48fa5f83c1601f9f2144882819520c205006acef):

  • vp run check:changed 48fa5f83c1601f9f2144882819520c205006acef passed: format, lint, both Knip passes, seven affected package typechecks, and 192 tests across six selected files. The selected tests cover the client-runtime executor and target status, web build status and production review, and mobile update controls.
  • Two additional focused tests passed: packages/client-runtime/src/jones/installPlan/presentation.test.ts and apps/web/src/jones/installStatus/execution.test.ts (14 tests). Together, the affected union passed 206 tests across eight files.
  • node scripts/jones/check-boundary.ts --strict --json passed with zero violations; git diff --check passed. git range-diff confirms all six original task commits are unchanged, and the candidate's diff against composed main remains the original 12 paths.
  • The original check:changed result at 2af2a173a0998c1505ec16ebf24d5fdbe33ee490 exited 1 with its seccomp short-path pre-execution error; separate bounded typechecks succeeded. That earlier failure remains recorded and is not relabeled as green. The fresh aggregate above passed on the composed candidate.
  • The independent Sol/max correctness review and required Check were tied to the original head 2af2a173a0998c1505ec16ebf24d5fdbe33ee490; the Check result does not qualify this composed head. No new review was requested in this capsule. Earlier native startup, macOS install lifecycle, and Preview qualification were also tied to the original head and were not rerun here. Current-head CI watch and merge qualification remain with the parent.

Existing visual evidence is retained as a source-bound comparison: baseline fixture commit e44d9ccff60a3296a3386cca3a296e4535370120 (tree 9d0ba670e5ebda770a493f920739f06c96b27a35) and pre-integration candidate 2af2a173a0998c1505ec16ebf24d5fdbe33ee490 (tree acf44b4d9cf9e6a3841d8f20805a141edaf94f5a). Synthetic scenarios cover an already-running stage, a dated failed check, and a cleared stale failure. These captures are not new renders of the composed candidate.

Native mobile rendering/Intl and actual host behavior on redundant installation remain unverified. No installed app or server was updated, activated or restarted.

Contributors: Fix stale device installation status (thread 6b0f3bc6-e53e-4f0f-ab10-bd7166439e46), Jace Fable/high planner with verified original-session reconciliation, Astra/max concept reviewer, Sol/high VPS builder. The original implementation used the Codex harness under Blended Frontier Max.

Before (e44d9cc):

After (2af2a173), identical synthetic inputs:

After, successful-recheck Details expanded:

Before Settings install guards and check dates

After Settings install guards and check dates

Successful recheck Details without stale failure

Final current-head qualification: required Check passed on 2445afdba3abe13ae8b3c7d047b81931559d6962. Current-head native startup, macOS install lifecycle, and native Preview jobs also passed. The retained manual comparison captures remain bound to the earlier source revisions stated above; the accepted task delta is unchanged after main integration.

Advisory Server parallel qualification failed on Linux and Apple Silicon macOS in run 43224634637. Retained artifacts report failed overlap, writer-latency, resource-completeness and churn-throughput predicates (plus normal-target predicates on macOS); snapshot/full-matrix evidence is unknown. These failures are not native performance qualification and are tracked under #853. They do not hold source merge under the repository's required/advisory contract.

@Mjones13
Mjones13 changed the base branch from work/settings-style-pass-20261110 to main November 12, 2026 13:11
@Mjones13
Mjones13 merged commit eaa0704 into main Nov 12, 2026
39 of 41 checks passed
Mjones13 added a commit that referenced this pull request Nov 12, 2026
Bring in #964's rollout handoff and #936's admission guards for installs
that are already running, along with its dated check outcomes.

ConnectReachability keeps upstream's 530 Cloudflare error-code parsing and
restart streaks. It adds main's header-only HTTP evidence, local identity
probe and anonymous-response explanation. A non-1033 Cloudflare code is
appended to that explanation. The troubleshooting table keeps upstream's
paid-account fix and main's anonymous 403 row. The boundary lists take the
union of both sides.

Adjustments for the other side's changes:
- The off-process stage test now expects a single sweep exit. Main
  coalesces a sweep requested while another is running, so the test's
  explicit sweep joins the cleanup the failed stage requested.
- The session diagnostic test gives the connection driver its
  authorization service. Upstream #27998 made the driver depend on it.
- Main's new descriptor decoder and request guard are hoisted to module
  scope, as upstream's no-inline-schema-compile rule requires.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant